#ifndef PSD_PATH_HANDLER_H
#define PSD_PATH_HANDLER_H

#include "psd_path.h"

typedef struct psd_path_handler_t {
	char *name;
	int (*allocate) (const psdSettings *settings, psdPath **path, char **error_msg);
	char *(*get_path_id) (const psdSettings *settings, char **error_msg);
} psdPathHandler;

int psd_path_handler_init();
int psd_get_path_handler(const char *name);
int psd_add_path_handler(psdPathHandler *handler);
int psd_get_path(const char *type, psdSettings *settings, psdPath **ret_path, char **error_msg);

#endif
